#ifndef MODULEBUILDER_H
#define MODULEBUILDER_H

#include "gamekit/gamekit.h"
#include "Module.h"

struct lua_State;

namespace gamekit
{
	class ScriptingComponent;

	namespace scripting
	{
		class ModuleBuilder
		{
			friend class gamekit::ScriptingComponent;

			typedef int (*LuaFunction) (lua_State*);

		public:
			ModuleBuilder(const ModuleBuilder& builder);

			ModuleBuilder function(const std::string& name, LuaFunction func);

		private:
			ModuleBuilder(Module* module);

		private:
			Module* m_module;
		};
	}
}

#endif
